package po

import (
	"demo/dao"
	"fmt"
	"time"
)

type Room struct {
	Id           int       `gorm:"column:id" json:"id"`
	Name         string    `gorm:"column:name" json:"name"`
	Url          string    `gorm:"column:url" json:"url"`
	RtspUrl      string    `gorm:"column:rtsp_url" json:"rtsp_url"`
	CreateUserId int       `gorm:"column:create_user_id" json:"create_user_id"`
	RoomType     int       `gorm:"column:type" json:"type"`
	LiveTotal    int       `gorm:"column:live_total" json:"live_total"`
	Total        int       `gorm:"column:total" json:"total"`
	CreateTime   time.Time `gorm:"column:create_time" json:"create_time"`
	UpdateTime   time.Time `gorm:"column:update_time" json:"update_time"`
	IsDel        int       `gorm:"column:is_delete" json:"is_delete"`
	Version      int       `gorm:"column:version" json:"version"`
}

func (Room) TableName() string {
	return "live_room"
}

// GetRoomById 根据房间id获取房间信息
func GetRoomById(roomId int) (Room, error) {
	room := Room{}
	err := dao.Db.Where("id = ?", roomId).First(&room).Error
	return room, err
}

// AddRoom 新增房间
func AddRoom(newRoom *Room) error {
	// 在插入之前可以做一些验证工作，例如检查字段是否符合要求等
	if newRoom.Name == "" || newRoom.Url == "" || newRoom.RtspUrl == "" {
		return fmt.Errorf("name, url and rtsp_url are required")
	}

	// 使用 GORM 的 Create 方法来插入新的记录
	result := dao.Db.Create(newRoom)
	if result.Error != nil {
		return result.Error
	}
	return nil
}
